Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT: remove fallthrough limitations from redundant branch optimizer #97722

Conversation

AndyAyersMS
Copy link
Member

Now that BBJ_COND no longer has fallthrough semantics, remove a bunch of code that would limit redundant branch jump threading when one of the predecessors was fallthrough.

Contributes to #93020.

Now that `BBJ_COND` no longer has fallthrough semantics, remove a bunch
of code that would limit redundant branch jump threading when one of
the predecessors was fallthrough.

Contributes to dotnet#93020.
@ghost ghost assigned AndyAyersMS Jan 30, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 30, 2024
@ghost
Copy link

ghost commented Jan 30, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Now that BBJ_COND no longer has fallthrough semantics, remove a bunch of code that would limit redundant branch jump threading when one of the predecessors was fallthrough.

Contributes to #93020.

Author: AndyAyersMS
Assignees: AndyAyersMS
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

@amanasifkhalid PTAL
cc @dotnet/jit-contrib

@amanasifkhalid
Copy link
Member

Ah, my email didn't refresh automatically, and I just opened #97724 to do the same thing. I'll close that PR in favor of yours.

Copy link
Member

@amanasifkhalid amanasifkhalid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you're here, in Compiler::optRedundantBranches(), could you please rename the bbNext and bbJump locals? Maybe something like bbFalse and bbTrue...

Otherwise LGTM, thanks!

@AndyAyersMS
Copy link
Member Author

Since you're here, in Compiler::optRedundantBranches(), could you please rename the bbNext and bbJump locals? Maybe something like bbFalse and bbTrue...

Otherwise LGTM, thanks!

Done.

@ryujit-bot
Copy link

Diff results for #97722

Assembly diffs

Assembly diffs for linux/arm64 ran on linux/x64

Diffs are based on 2,506,119 contexts (1,007,092 MinOpts, 1,499,027 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 1,199 (0.05%)

Overall (-71,864 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,545,628 -572
benchmarks.run_pgo.linux.arm64.checked.mch 79,733,396 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 24,597,428 -460
coreclr_tests.run.linux.arm64.checked.mch 508,528,604 -4,536
libraries.crossgen2.linux.arm64.checked.mch 55,844,108 -1,356
libraries.pmi.linux.arm64.checked.mch 76,277,412 -3,084
libraries_tests.run.linux.arm64.Release.mch 393,983,252 -55,708
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 164,985,256 -3,600
realworld.run.linux.arm64.checked.mch 15,900,012 -512
smoke_tests.nativeaot.linux.arm64.checked.mch 2,946,792 -952
FullOpts (-71,864 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,240,700 -572
benchmarks.run_pgo.linux.arm64.checked.mch 53,798,612 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 4,858,992 -460
coreclr_tests.run.linux.arm64.checked.mch 160,380,452 -4,536
libraries.crossgen2.linux.arm64.checked.mch 55,842,472 -1,356
libraries.pmi.linux.arm64.checked.mch 76,157,428 -3,084
libraries_tests.run.linux.arm64.Release.mch 178,851,300 -55,708
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,487,792 -3,600
realworld.run.linux.arm64.checked.mch 15,319,088 -512
smoke_tests.nativeaot.linux.arm64.checked.mch 2,945,804 -952

Assembly diffs for osx/arm64 ran on linux/x64

Diffs are based on 2,270,095 contexts (932,669 MinOpts, 1,337,426 FullOpts).

MISSED contexts: base: 9 (0.00%), diff: 775 (0.03%)

Overall (-66,736 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,174,072 -564
benchmarks.run_pgo.osx.arm64.checked.mch 34,340,668 +340
benchmarks.run_tiered.osx.arm64.checked.mch 15,512,204 -452
coreclr_tests.run.osx.arm64.checked.mch 486,276,800 -2,556
libraries.crossgen2.osx.arm64.checked.mch 55,725,580 -1,316
libraries.pmi.osx.arm64.checked.mch 80,199,564 -4,192
libraries_tests.run.osx.arm64.Release.mch 323,318,496 -53,936
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 162,554,936 -3,544
realworld.run.osx.arm64.checked.mch 15,058,820 -516
FullOpts (-66,736 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,173,536 -564
benchmarks.run_pgo.osx.arm64.checked.mch 18,039,368 +340
benchmarks.run_tiered.osx.arm64.checked.mch 4,007,720 -452
coreclr_tests.run.osx.arm64.checked.mch 153,663,876 -2,556
libraries.crossgen2.osx.arm64.checked.mch 55,723,952 -1,316
libraries.pmi.osx.arm64.checked.mch 80,078,436 -4,192
libraries_tests.run.osx.arm64.Release.mch 119,602,648 -53,936
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 149,401,208 -3,544
realworld.run.osx.arm64.checked.mch 14,494,864 -516

Assembly diffs for windows/arm64 ran on linux/x64

Diffs are based on 2,340,158 contexts (938,449 MinOpts, 1,401,709 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 959 (0.04%)

Overall (-72,576 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,840 -516
benchmarks.run_pgo.windows.arm64.checked.mch 45,445,732 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 15,585,968 -448
coreclr_tests.run.windows.arm64.checked.mch 495,087,516 -3,976
libraries.crossgen2.windows.arm64.checked.mch 59,070,348 -1,324
libraries.pmi.windows.arm64.checked.mch 79,830,948 -3,216
libraries_tests.run.windows.arm64.Release.mch 329,448,404 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,564,424 -3,808
realworld.run.windows.arm64.checked.mch 15,902,520 -516
smoke_tests.nativeaot.windows.arm64.checked.mch 3,970,716 -1,716
FullOpts (-72,576 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,304 -516
benchmarks.run_pgo.windows.arm64.checked.mch 29,434,336 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 4,408,780 -448
coreclr_tests.run.windows.arm64.checked.mch 156,398,412 -3,976
libraries.crossgen2.windows.arm64.checked.mch 59,068,712 -1,324
libraries.pmi.windows.arm64.checked.mch 79,710,964 -3,216
libraries_tests.run.windows.arm64.Release.mch 126,014,808 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,410,676 -3,808
realworld.run.windows.arm64.checked.mch 15,338,540 -516
smoke_tests.nativeaot.windows.arm64.checked.mch 3,969,704 -1,716

Assembly diffs for windows/x64 ran on linux/x64

Diffs are based on 2,511,303 contexts (997,391 MinOpts, 1,513,912 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 909 (0.04%)

Overall (-50,652 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,018,038 -396
benchmarks.run.windows.x64.checked.mch 8,742,274 -542
benchmarks.run_pgo.windows.x64.checked.mch 36,139,006 -2,079
benchmarks.run_tiered.windows.x64.checked.mch 12,416,111 -231
coreclr_tests.run.windows.x64.checked.mch 393,037,195 -2,673
libraries.crossgen2.windows.x64.checked.mch 39,486,202 -945
libraries.pmi.windows.x64.checked.mch 61,661,352 -2,536
libraries_tests.run.windows.x64.Release.mch 280,818,413 -35,653
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 137,065,702 -1,065
realworld.run.windows.x64.checked.mch 14,130,688 -219
smoke_tests.nativeaot.windows.x64.checked.mch 5,083,011 -4,313
FullOpts (-50,652 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,526,989 -396
benchmarks.run.windows.x64.checked.mch 8,741,911 -542
benchmarks.run_pgo.windows.x64.checked.mch 21,968,350 -2,079
benchmarks.run_tiered.windows.x64.checked.mch 3,316,872 -231
coreclr_tests.run.windows.x64.checked.mch 120,248,341 -2,673
libraries.crossgen2.windows.x64.checked.mch 39,485,015 -945
libraries.pmi.windows.x64.checked.mch 61,547,831 -2,536
libraries_tests.run.windows.x64.Release.mch 104,960,095 -35,653
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,446,596 -1,065
realworld.run.windows.x64.checked.mch 13,744,079 -219
smoke_tests.nativeaot.windows.x64.checked.mch 5,082,064 -4,313

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.05%
benchmarks.run_pgo.linux.arm64.checked.mch +0.19%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
FullOpts (+0.01% to +0.22%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.05%
benchmarks.run_pgo.linux.arm64.checked.mch +0.22%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.04%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.19%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.07%
libraries_tests.run.linux.x64.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
realworld.run.linux.x64.checked.mch +0.07%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.21%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.07%
libraries_tests.run.linux.x64.Release.mch +0.14%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
realworld.run.linux.x64.checked.mch +0.07%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.06%
benchmarks.run_pgo.osx.arm64.checked.mch +0.11%
benchmarks.run_tiered.osx.arm64.checked.mch +0.03%
coreclr_tests.run.osx.arm64.checked.mch +0.02%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.10%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.06%
FullOpts (+0.01% to +0.14%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.06%
benchmarks.run_pgo.osx.arm64.checked.mch +0.13%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.03%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.06%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.06%
benchmarks.run_pgo.windows.arm64.checked.mch +0.19%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.02%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.12%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.06%
MinOpts (-0.01% to +0.00%)
Collection PDIFF
libraries.pmi.windows.arm64.checked.mch -0.01%
FullOpts (+0.01% to +0.22%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.06%
benchmarks.run_pgo.windows.arm64.checked.mch +0.22%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.03%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.17%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.06%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.10%
benchmarks.run.windows.x64.checked.mch +0.07%
benchmarks.run_pgo.windows.x64.checked.mch +0.19%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.02%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.07%
libraries_tests.run.windows.x64.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.06%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%
FullOpts (+0.01% to +0.22%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.12%
benchmarks.run.windows.x64.checked.mch +0.07%
benchmarks.run_pgo.windows.x64.checked.mch +0.22%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.04%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.07%
libraries_tests.run.windows.x64.Release.mch +0.15%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.06%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (+0.01% to +0.17%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.07%
benchmarks.run_pgo.windows.x86.checked.mch +0.17%
benchmarks.run_tiered.windows.x86.checked.mch +0.06%
coreclr_tests.run.windows.x86.checked.mch +0.03%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.07%
libraries_tests.run.windows.x86.Release.mch +0.10%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.07%
realworld.run.windows.x86.checked.mch +0.07%
FullOpts (+0.01% to +0.17%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.07%
benchmarks.run_pgo.windows.x86.checked.mch +0.17%
benchmarks.run_tiered.windows.x86.checked.mch +0.07%
coreclr_tests.run.windows.x86.checked.mch +0.04%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.07%
libraries_tests.run.windows.x86.Release.mch +0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.07%
realworld.run.windows.x86.checked.mch +0.07%

Details here


@ryujit-bot
Copy link

Diff results for #97722

Assembly diffs

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,516,692 contexts (991,070 MinOpts, 1,525,622 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 1,217 (0.05%)

Overall (-35,373 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,336,549 -458
benchmarks.run_pgo.linux.x64.checked.mch 71,273,045 -238
benchmarks.run_tiered.linux.x64.checked.mch 21,435,743 -138
coreclr_tests.run.linux.x64.checked.mch 403,519,732 -6,229
libraries.crossgen2.linux.x64.checked.mch 38,727,192 -1,101
libraries.pmi.linux.x64.checked.mch 60,418,410 -1,691
libraries_tests.run.linux.x64.Release.mch 335,624,331 -20,727
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,556,965 -1,757
realworld.run.linux.x64.checked.mch 13,174,803 +56
smoke_tests.nativeaot.linux.x64.checked.mch 4,234,485 -3,090
FullOpts (-35,373 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,037,246 -458
benchmarks.run_pgo.linux.x64.checked.mch 47,473,056 -238
benchmarks.run_tiered.linux.x64.checked.mch 3,694,963 -138
coreclr_tests.run.linux.x64.checked.mch 123,765,030 -6,229
libraries.crossgen2.linux.x64.checked.mch 38,725,994 -1,101
libraries.pmi.linux.x64.checked.mch 60,305,553 -1,691
libraries_tests.run.linux.x64.Release.mch 151,864,638 -20,727
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,939,197 -1,757
realworld.run.linux.x64.checked.mch 12,788,919 +56
smoke_tests.nativeaot.linux.x64.checked.mch 4,233,536 -3,090

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,239,012 contexts (829,328 MinOpts, 1,409,684 FullOpts).

MISSED contexts: base: 71,273 (3.08%), diff: 71,652 (3.10%)

Overall (-25,352 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 15,290,340 -344
benchmarks.run_pgo.linux.arm.checked.mch 63,930,056 -980
benchmarks.run_tiered.linux.arm.checked.mch 21,546,378 -348
coreclr_tests.run.linux.arm.checked.mch 321,751,292 -3,566
libraries.crossgen2.linux.arm.checked.mch 34,522,594 -938
libraries.pmi.linux.arm.checked.mch 49,852,844 -2,056
libraries_tests.run.linux.arm.Release.mch 243,535,854 -13,848
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 94,520,720 -3,166
realworld.run.linux.arm.checked.mch 13,606,688 -106
FullOpts (-25,352 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 14,901,138 -344
benchmarks.run_pgo.linux.arm.checked.mch 52,730,090 -980
benchmarks.run_tiered.linux.arm.checked.mch 12,893,378 -348
coreclr_tests.run.linux.arm.checked.mch 109,273,704 -3,566
libraries.crossgen2.linux.arm.checked.mch 34,521,364 -938
libraries.pmi.linux.arm.checked.mch 49,746,620 -2,056
libraries_tests.run.linux.arm.Release.mch 122,566,722 -13,848
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 84,449,984 -3,166
realworld.run.linux.arm.checked.mch 13,171,388 -106

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,292,076 contexts (839,658 MinOpts, 1,452,418 FullOpts).

MISSED contexts: base: 1 (0.00%), diff: 1,420 (0.06%)

Overall (-7,570 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,956 -237
benchmarks.run_pgo.windows.x86.checked.mch 44,953,073 -523
benchmarks.run_tiered.windows.x86.checked.mch 9,468,479 -359
coreclr_tests.run.windows.x86.checked.mch 309,197,550 -1,795
libraries.crossgen2.windows.x86.checked.mch 31,713,985 -762
libraries.pmi.windows.x86.checked.mch 49,253,151 -1,180
libraries_tests.run.windows.x86.Release.mch 185,471,045 -3,289
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 103,778,092 -98
realworld.run.windows.x86.checked.mch 11,345,019 +673
FullOpts (-7,570 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,675 -237
benchmarks.run_pgo.windows.x86.checked.mch 38,364,442 -523
benchmarks.run_tiered.windows.x86.checked.mch 5,198,658 -359
coreclr_tests.run.windows.x86.checked.mch 107,409,416 -1,795
libraries.crossgen2.windows.x86.checked.mch 31,712,925 -762
libraries.pmi.windows.x86.checked.mch 49,157,918 -1,180
libraries_tests.run.windows.x86.Release.mch 87,197,345 -3,289
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 95,098,028 -98
realworld.run.windows.x86.checked.mch 11,049,305 +673

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch +0.11%
benchmarks.run.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
realworld.run.linux.arm64.checked.mch +0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.19%
libraries.pmi.linux.arm64.checked.mch +0.06%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch +0.14%
benchmarks.run.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.21%
libraries.pmi.linux.arm64.checked.mch +0.06%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
realworld.run.linux.x64.checked.mch +0.06%
libraries.pmi.linux.x64.checked.mch +0.06%
libraries_tests.run.linux.x64.Release.mch +0.11%
benchmarks.run_pgo.linux.x64.checked.mch +0.19%
coreclr_tests.run.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
benchmarks.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
realworld.run.linux.x64.checked.mch +0.06%
libraries.pmi.linux.x64.checked.mch +0.06%
libraries_tests.run.linux.x64.Release.mch +0.14%
benchmarks.run_pgo.linux.x64.checked.mch +0.21%
coreclr_tests.run.linux.x64.checked.mch +0.05%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%
benchmarks.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.14%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.14%
benchmarks.run_tiered.linux.arm.checked.mch +0.03%
coreclr_tests.run.linux.arm.checked.mch +0.03%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.05%
libraries_tests.run.linux.arm.Release.mch +0.09%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.05%
realworld.run.linux.arm.checked.mch +0.05%
FullOpts (+0.01% to +0.15%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.15%
benchmarks.run_tiered.linux.arm.checked.mch +0.03%
coreclr_tests.run.linux.arm.checked.mch +0.04%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.05%
libraries_tests.run.linux.arm.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.06%
realworld.run.linux.arm.checked.mch +0.05%

Details here


Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.05%
benchmarks.run_pgo.linux.arm64.checked.mch +0.19%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
FullOpts (+0.01% to +0.22%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.05%
benchmarks.run_pgo.linux.arm64.checked.mch +0.22%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.04%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.06%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.19%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.07%
libraries_tests.run.linux.x64.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
realworld.run.linux.x64.checked.mch +0.07%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.21%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.07%
libraries_tests.run.linux.x64.Release.mch +0.14%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
realworld.run.linux.x64.checked.mch +0.07%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.06%
benchmarks.run_pgo.osx.arm64.checked.mch +0.11%
benchmarks.run_tiered.osx.arm64.checked.mch +0.03%
coreclr_tests.run.osx.arm64.checked.mch +0.02%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.10%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.06%
FullOpts (+0.01% to +0.14%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.06%
benchmarks.run_pgo.osx.arm64.checked.mch +0.13%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.03%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.06%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.06%
benchmarks.run_pgo.windows.arm64.checked.mch +0.19%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.02%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.12%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.06%
FullOpts (+0.01% to +0.22%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.06%
benchmarks.run_pgo.windows.arm64.checked.mch +0.22%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.03%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.17%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.06%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.10%
benchmarks.run.windows.x64.checked.mch +0.07%
benchmarks.run_pgo.windows.x64.checked.mch +0.19%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.02%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.07%
libraries_tests.run.windows.x64.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.06%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%
FullOpts (+0.01% to +0.22%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.12%
benchmarks.run.windows.x64.checked.mch +0.07%
benchmarks.run_pgo.windows.x64.checked.mch +0.22%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.04%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.07%
libraries_tests.run.windows.x64.Release.mch +0.15%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.06%
smoke_tests.nativeaot.windows.x64.checked.mch +0.05%

Details here


@ryujit-bot
Copy link

Diff results for #97722

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,506,119 contexts (1,007,092 MinOpts, 1,499,027 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 1,199 (0.05%)

Overall (-71,864 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,545,628 -572
benchmarks.run_pgo.linux.arm64.checked.mch 79,733,396 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 24,597,428 -460
coreclr_tests.run.linux.arm64.checked.mch 508,528,604 -4,536
libraries.crossgen2.linux.arm64.checked.mch 55,844,108 -1,356
libraries.pmi.linux.arm64.checked.mch 76,277,412 -3,084
libraries_tests.run.linux.arm64.Release.mch 393,983,252 -55,708
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 164,985,256 -3,600
realworld.run.linux.arm64.checked.mch 15,900,012 -512
smoke_tests.nativeaot.linux.arm64.checked.mch 2,946,792 -952
FullOpts (-71,864 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,240,700 -572
benchmarks.run_pgo.linux.arm64.checked.mch 53,798,612 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 4,858,992 -460
coreclr_tests.run.linux.arm64.checked.mch 160,380,452 -4,536
libraries.crossgen2.linux.arm64.checked.mch 55,842,472 -1,356
libraries.pmi.linux.arm64.checked.mch 76,157,428 -3,084
libraries_tests.run.linux.arm64.Release.mch 178,851,300 -55,708
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,487,792 -3,600
realworld.run.linux.arm64.checked.mch 15,319,088 -512
smoke_tests.nativeaot.linux.arm64.checked.mch 2,945,804 -952

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,516,692 contexts (991,070 MinOpts, 1,525,622 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 1,217 (0.05%)

Overall (-35,373 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,336,549 -458
benchmarks.run_pgo.linux.x64.checked.mch 71,273,045 -238
benchmarks.run_tiered.linux.x64.checked.mch 21,435,743 -138
coreclr_tests.run.linux.x64.checked.mch 403,519,732 -6,229
libraries.crossgen2.linux.x64.checked.mch 38,727,192 -1,101
libraries.pmi.linux.x64.checked.mch 60,418,410 -1,691
libraries_tests.run.linux.x64.Release.mch 335,624,331 -20,727
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,556,965 -1,757
realworld.run.linux.x64.checked.mch 13,174,803 +56
smoke_tests.nativeaot.linux.x64.checked.mch 4,234,485 -3,090
FullOpts (-35,373 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,037,246 -458
benchmarks.run_pgo.linux.x64.checked.mch 47,473,056 -238
benchmarks.run_tiered.linux.x64.checked.mch 3,694,963 -138
coreclr_tests.run.linux.x64.checked.mch 123,765,030 -6,229
libraries.crossgen2.linux.x64.checked.mch 38,725,994 -1,101
libraries.pmi.linux.x64.checked.mch 60,305,553 -1,691
libraries_tests.run.linux.x64.Release.mch 151,864,638 -20,727
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,939,197 -1,757
realworld.run.linux.x64.checked.mch 12,788,919 +56
smoke_tests.nativeaot.linux.x64.checked.mch 4,233,536 -3,090

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,270,095 contexts (932,669 MinOpts, 1,337,426 FullOpts).

MISSED contexts: base: 9 (0.00%), diff: 775 (0.03%)

Overall (-66,736 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,174,072 -564
benchmarks.run_pgo.osx.arm64.checked.mch 34,340,668 +340
benchmarks.run_tiered.osx.arm64.checked.mch 15,512,204 -452
coreclr_tests.run.osx.arm64.checked.mch 486,276,800 -2,556
libraries.crossgen2.osx.arm64.checked.mch 55,725,580 -1,316
libraries.pmi.osx.arm64.checked.mch 80,199,564 -4,192
libraries_tests.run.osx.arm64.Release.mch 323,318,496 -53,936
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 162,554,936 -3,544
realworld.run.osx.arm64.checked.mch 15,058,820 -516
FullOpts (-66,736 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,173,536 -564
benchmarks.run_pgo.osx.arm64.checked.mch 18,039,368 +340
benchmarks.run_tiered.osx.arm64.checked.mch 4,007,720 -452
coreclr_tests.run.osx.arm64.checked.mch 153,663,876 -2,556
libraries.crossgen2.osx.arm64.checked.mch 55,723,952 -1,316
libraries.pmi.osx.arm64.checked.mch 80,078,436 -4,192
libraries_tests.run.osx.arm64.Release.mch 119,602,648 -53,936
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 149,401,208 -3,544
realworld.run.osx.arm64.checked.mch 14,494,864 -516

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,340,158 contexts (938,449 MinOpts, 1,401,709 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 959 (0.04%)

Overall (-72,576 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,840 -516
benchmarks.run_pgo.windows.arm64.checked.mch 45,445,732 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 15,585,968 -448
coreclr_tests.run.windows.arm64.checked.mch 495,087,516 -3,976
libraries.crossgen2.windows.arm64.checked.mch 59,070,348 -1,324
libraries.pmi.windows.arm64.checked.mch 79,830,948 -3,216
libraries_tests.run.windows.arm64.Release.mch 329,448,404 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,564,424 -3,808
realworld.run.windows.arm64.checked.mch 15,902,520 -516
smoke_tests.nativeaot.windows.arm64.checked.mch 3,970,716 -1,716
FullOpts (-72,576 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,304 -516
benchmarks.run_pgo.windows.arm64.checked.mch 29,434,336 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 4,408,780 -448
coreclr_tests.run.windows.arm64.checked.mch 156,398,412 -3,976
libraries.crossgen2.windows.arm64.checked.mch 59,068,712 -1,324
libraries.pmi.windows.arm64.checked.mch 79,710,964 -3,216
libraries_tests.run.windows.arm64.Release.mch 126,014,808 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,410,676 -3,808
realworld.run.windows.arm64.checked.mch 15,338,540 -516
smoke_tests.nativeaot.windows.arm64.checked.mch 3,969,704 -1,716

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,511,303 contexts (997,391 MinOpts, 1,513,912 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 909 (0.04%)

Overall (-50,652 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,018,038 -396
benchmarks.run.windows.x64.checked.mch 8,742,274 -542
benchmarks.run_pgo.windows.x64.checked.mch 36,139,006 -2,079
benchmarks.run_tiered.windows.x64.checked.mch 12,416,111 -231
coreclr_tests.run.windows.x64.checked.mch 393,037,195 -2,673
libraries.crossgen2.windows.x64.checked.mch 39,486,202 -945
libraries.pmi.windows.x64.checked.mch 61,661,352 -2,536
libraries_tests.run.windows.x64.Release.mch 280,818,413 -35,653
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 137,065,702 -1,065
realworld.run.windows.x64.checked.mch 14,130,688 -219
smoke_tests.nativeaot.windows.x64.checked.mch 5,083,011 -4,313
FullOpts (-50,652 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,526,989 -396
benchmarks.run.windows.x64.checked.mch 8,741,911 -542
benchmarks.run_pgo.windows.x64.checked.mch 21,968,350 -2,079
benchmarks.run_tiered.windows.x64.checked.mch 3,316,872 -231
coreclr_tests.run.windows.x64.checked.mch 120,248,341 -2,673
libraries.crossgen2.windows.x64.checked.mch 39,485,015 -945
libraries.pmi.windows.x64.checked.mch 61,547,831 -2,536
libraries_tests.run.windows.x64.Release.mch 104,960,095 -35,653
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,446,596 -1,065
realworld.run.windows.x64.checked.mch 13,744,079 -219
smoke_tests.nativeaot.windows.x64.checked.mch 5,082,064 -4,313

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,239,012 contexts (829,328 MinOpts, 1,409,684 FullOpts).

MISSED contexts: base: 71,273 (3.08%), diff: 71,652 (3.10%)

Overall (-25,352 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 15,290,340 -344
benchmarks.run_pgo.linux.arm.checked.mch 63,930,056 -980
benchmarks.run_tiered.linux.arm.checked.mch 21,546,378 -348
coreclr_tests.run.linux.arm.checked.mch 321,751,292 -3,566
libraries.crossgen2.linux.arm.checked.mch 34,522,594 -938
libraries.pmi.linux.arm.checked.mch 49,852,844 -2,056
libraries_tests.run.linux.arm.Release.mch 243,535,854 -13,848
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 94,520,720 -3,166
realworld.run.linux.arm.checked.mch 13,606,688 -106
FullOpts (-25,352 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 14,901,138 -344
benchmarks.run_pgo.linux.arm.checked.mch 52,730,090 -980
benchmarks.run_tiered.linux.arm.checked.mch 12,893,378 -348
coreclr_tests.run.linux.arm.checked.mch 109,273,704 -3,566
libraries.crossgen2.linux.arm.checked.mch 34,521,364 -938
libraries.pmi.linux.arm.checked.mch 49,746,620 -2,056
libraries_tests.run.linux.arm.Release.mch 122,566,722 -13,848
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 84,449,984 -3,166
realworld.run.linux.arm.checked.mch 13,171,388 -106

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,292,076 contexts (839,658 MinOpts, 1,452,418 FullOpts).

MISSED contexts: base: 1 (0.00%), diff: 1,420 (0.06%)

Overall (-7,570 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,956 -237
benchmarks.run_pgo.windows.x86.checked.mch 44,953,073 -523
benchmarks.run_tiered.windows.x86.checked.mch 9,468,479 -359
coreclr_tests.run.windows.x86.checked.mch 309,197,550 -1,795
libraries.crossgen2.windows.x86.checked.mch 31,713,985 -762
libraries.pmi.windows.x86.checked.mch 49,253,151 -1,180
libraries_tests.run.windows.x86.Release.mch 185,471,045 -3,289
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 103,778,092 -98
realworld.run.windows.x86.checked.mch 11,345,019 +673
FullOpts (-7,570 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,675 -237
benchmarks.run_pgo.windows.x86.checked.mch 38,364,442 -523
benchmarks.run_tiered.windows.x86.checked.mch 5,198,658 -359
coreclr_tests.run.windows.x86.checked.mch 107,409,416 -1,795
libraries.crossgen2.windows.x86.checked.mch 31,712,925 -762
libraries.pmi.windows.x86.checked.mch 49,157,918 -1,180
libraries_tests.run.windows.x86.Release.mch 87,197,345 -3,289
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 95,098,028 -98
realworld.run.windows.x86.checked.mch 11,049,305 +673

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.14%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.14%
benchmarks.run_tiered.linux.arm.checked.mch +0.02%
coreclr_tests.run.linux.arm.checked.mch +0.03%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.06%
libraries_tests.run.linux.arm.Release.mch +0.09%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.06%
realworld.run.linux.arm.checked.mch +0.05%
FullOpts (+0.01% to +0.15%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.15%
benchmarks.run_tiered.linux.arm.checked.mch +0.03%
coreclr_tests.run.linux.arm.checked.mch +0.04%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.06%
libraries_tests.run.linux.arm.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.06%
realworld.run.linux.arm.checked.mch +0.05%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.01% to +0.17%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.07%
benchmarks.run_pgo.windows.x86.checked.mch +0.17%
benchmarks.run_tiered.windows.x86.checked.mch +0.06%
coreclr_tests.run.windows.x86.checked.mch +0.03%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.07%
libraries_tests.run.windows.x86.Release.mch +0.10%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.07%
realworld.run.windows.x86.checked.mch +0.07%
FullOpts (+0.01% to +0.17%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.07%
benchmarks.run_pgo.windows.x86.checked.mch +0.17%
benchmarks.run_tiered.windows.x86.checked.mch +0.07%
coreclr_tests.run.windows.x86.checked.mch +0.04%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.07%
libraries_tests.run.windows.x86.Release.mch +0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.07%
realworld.run.windows.x86.checked.mch +0.07%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
realworld.run.linux.arm64.checked.mch +0.06%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
benchmarks.run_pgo.linux.arm64.checked.mch +0.19%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
benchmarks.run.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.05%
libraries_tests.run.linux.arm64.Release.mch +0.11%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.06%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
benchmarks.run_pgo.linux.arm64.checked.mch +0.21%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
benchmarks.run.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.05%
libraries_tests.run.linux.arm64.Release.mch +0.14%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
coreclr_tests.run.linux.x64.checked.mch +0.03%
realworld.run.linux.x64.checked.mch +0.06%
libraries.pmi.linux.x64.checked.mch +0.06%
benchmarks.run_pgo.linux.x64.checked.mch +0.19%
benchmarks.run.linux.x64.checked.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
libraries_tests.run.linux.x64.Release.mch +0.11%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
coreclr_tests.run.linux.x64.checked.mch +0.05%
realworld.run.linux.x64.checked.mch +0.06%
libraries.pmi.linux.x64.checked.mch +0.06%
benchmarks.run_pgo.linux.x64.checked.mch +0.21%
benchmarks.run.linux.x64.checked.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
libraries_tests.run.linux.x64.Release.mch +0.14%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%

Details here


@ryujit-bot
Copy link

Diff results for #97722

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,506,119 contexts (1,007,092 MinOpts, 1,499,027 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 1,199 (0.05%)

Overall (-71,864 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,545,628 -572
benchmarks.run_pgo.linux.arm64.checked.mch 79,733,396 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 24,597,428 -460
coreclr_tests.run.linux.arm64.checked.mch 508,528,604 -4,536
libraries.crossgen2.linux.arm64.checked.mch 55,844,108 -1,356
libraries.pmi.linux.arm64.checked.mch 76,277,412 -3,084
libraries_tests.run.linux.arm64.Release.mch 393,983,252 -55,708
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 164,985,256 -3,600
realworld.run.linux.arm64.checked.mch 15,900,012 -512
smoke_tests.nativeaot.linux.arm64.checked.mch 2,946,792 -952
FullOpts (-71,864 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,240,700 -572
benchmarks.run_pgo.linux.arm64.checked.mch 53,798,612 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 4,858,992 -460
coreclr_tests.run.linux.arm64.checked.mch 160,380,452 -4,536
libraries.crossgen2.linux.arm64.checked.mch 55,842,472 -1,356
libraries.pmi.linux.arm64.checked.mch 76,157,428 -3,084
libraries_tests.run.linux.arm64.Release.mch 178,851,300 -55,708
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,487,792 -3,600
realworld.run.linux.arm64.checked.mch 15,319,088 -512
smoke_tests.nativeaot.linux.arm64.checked.mch 2,945,804 -952

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,516,692 contexts (991,070 MinOpts, 1,525,622 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 1,217 (0.05%)

Overall (-35,373 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,336,549 -458
benchmarks.run_pgo.linux.x64.checked.mch 71,273,045 -238
benchmarks.run_tiered.linux.x64.checked.mch 21,435,743 -138
coreclr_tests.run.linux.x64.checked.mch 403,519,732 -6,229
libraries.crossgen2.linux.x64.checked.mch 38,727,192 -1,101
libraries.pmi.linux.x64.checked.mch 60,418,410 -1,691
libraries_tests.run.linux.x64.Release.mch 335,624,331 -20,727
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,556,965 -1,757
realworld.run.linux.x64.checked.mch 13,174,803 +56
smoke_tests.nativeaot.linux.x64.checked.mch 4,234,485 -3,090
FullOpts (-35,373 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,037,246 -458
benchmarks.run_pgo.linux.x64.checked.mch 47,473,056 -238
benchmarks.run_tiered.linux.x64.checked.mch 3,694,963 -138
coreclr_tests.run.linux.x64.checked.mch 123,765,030 -6,229
libraries.crossgen2.linux.x64.checked.mch 38,725,994 -1,101
libraries.pmi.linux.x64.checked.mch 60,305,553 -1,691
libraries_tests.run.linux.x64.Release.mch 151,864,638 -20,727
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,939,197 -1,757
realworld.run.linux.x64.checked.mch 12,788,919 +56
smoke_tests.nativeaot.linux.x64.checked.mch 4,233,536 -3,090

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,340,158 contexts (938,449 MinOpts, 1,401,709 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 959 (0.04%)

Overall (-72,576 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,840 -516
benchmarks.run_pgo.windows.arm64.checked.mch 45,445,732 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 15,585,968 -448
coreclr_tests.run.windows.arm64.checked.mch 495,087,516 -3,976
libraries.crossgen2.windows.arm64.checked.mch 59,070,348 -1,324
libraries.pmi.windows.arm64.checked.mch 79,830,948 -3,216
libraries_tests.run.windows.arm64.Release.mch 329,448,404 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,564,424 -3,808
realworld.run.windows.arm64.checked.mch 15,902,520 -516
smoke_tests.nativeaot.windows.arm64.checked.mch 3,970,716 -1,716
FullOpts (-72,576 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,304 -516
benchmarks.run_pgo.windows.arm64.checked.mch 29,434,336 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 4,408,780 -448
coreclr_tests.run.windows.arm64.checked.mch 156,398,412 -3,976
libraries.crossgen2.windows.arm64.checked.mch 59,068,712 -1,324
libraries.pmi.windows.arm64.checked.mch 79,710,964 -3,216
libraries_tests.run.windows.arm64.Release.mch 126,014,808 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,410,676 -3,808
realworld.run.windows.arm64.checked.mch 15,338,540 -516
smoke_tests.nativeaot.windows.arm64.checked.mch 3,969,704 -1,716

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,511,303 contexts (997,391 MinOpts, 1,513,912 FullOpts).

MISSED contexts: base: 8 (0.00%), diff: 909 (0.04%)

Overall (-50,652 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,018,038 -396
benchmarks.run.windows.x64.checked.mch 8,742,274 -542
benchmarks.run_pgo.windows.x64.checked.mch 36,139,006 -2,079
benchmarks.run_tiered.windows.x64.checked.mch 12,416,111 -231
coreclr_tests.run.windows.x64.checked.mch 393,037,195 -2,673
libraries.crossgen2.windows.x64.checked.mch 39,486,202 -945
libraries.pmi.windows.x64.checked.mch 61,661,352 -2,536
libraries_tests.run.windows.x64.Release.mch 280,818,413 -35,653
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 137,065,702 -1,065
realworld.run.windows.x64.checked.mch 14,130,688 -219
smoke_tests.nativeaot.windows.x64.checked.mch 5,083,011 -4,313
FullOpts (-50,652 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,526,989 -396
benchmarks.run.windows.x64.checked.mch 8,741,911 -542
benchmarks.run_pgo.windows.x64.checked.mch 21,968,350 -2,079
benchmarks.run_tiered.windows.x64.checked.mch 3,316,872 -231
coreclr_tests.run.windows.x64.checked.mch 120,248,341 -2,673
libraries.crossgen2.windows.x64.checked.mch 39,485,015 -945
libraries.pmi.windows.x64.checked.mch 61,547,831 -2,536
libraries_tests.run.windows.x64.Release.mch 104,960,095 -35,653
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,446,596 -1,065
realworld.run.windows.x64.checked.mch 13,744,079 -219
smoke_tests.nativeaot.windows.x64.checked.mch 5,082,064 -4,313

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,239,012 contexts (829,328 MinOpts, 1,409,684 FullOpts).

MISSED contexts: base: 71,273 (3.08%), diff: 71,652 (3.10%)

Overall (-25,352 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 15,290,340 -344
benchmarks.run_pgo.linux.arm.checked.mch 63,930,056 -980
benchmarks.run_tiered.linux.arm.checked.mch 21,546,378 -348
coreclr_tests.run.linux.arm.checked.mch 321,751,292 -3,566
libraries.crossgen2.linux.arm.checked.mch 34,522,594 -938
libraries.pmi.linux.arm.checked.mch 49,852,844 -2,056
libraries_tests.run.linux.arm.Release.mch 243,535,854 -13,848
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 94,520,720 -3,166
realworld.run.linux.arm.checked.mch 13,606,688 -106
FullOpts (-25,352 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 14,901,138 -344
benchmarks.run_pgo.linux.arm.checked.mch 52,730,090 -980
benchmarks.run_tiered.linux.arm.checked.mch 12,893,378 -348
coreclr_tests.run.linux.arm.checked.mch 109,273,704 -3,566
libraries.crossgen2.linux.arm.checked.mch 34,521,364 -938
libraries.pmi.linux.arm.checked.mch 49,746,620 -2,056
libraries_tests.run.linux.arm.Release.mch 122,566,722 -13,848
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 84,449,984 -3,166
realworld.run.linux.arm.checked.mch 13,171,388 -106

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,292,076 contexts (839,658 MinOpts, 1,452,418 FullOpts).

MISSED contexts: base: 1 (0.00%), diff: 1,420 (0.06%)

Overall (-7,570 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,956 -237
benchmarks.run_pgo.windows.x86.checked.mch 44,953,073 -523
benchmarks.run_tiered.windows.x86.checked.mch 9,468,479 -359
coreclr_tests.run.windows.x86.checked.mch 309,197,550 -1,795
libraries.crossgen2.windows.x86.checked.mch 31,713,985 -762
libraries.pmi.windows.x86.checked.mch 49,253,151 -1,180
libraries_tests.run.windows.x86.Release.mch 185,471,045 -3,289
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 103,778,092 -98
realworld.run.windows.x86.checked.mch 11,345,019 +673
FullOpts (-7,570 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,675 -237
benchmarks.run_pgo.windows.x86.checked.mch 38,364,442 -523
benchmarks.run_tiered.windows.x86.checked.mch 5,198,658 -359
coreclr_tests.run.windows.x86.checked.mch 107,409,416 -1,795
libraries.crossgen2.windows.x86.checked.mch 31,712,925 -762
libraries.pmi.windows.x86.checked.mch 49,157,918 -1,180
libraries_tests.run.windows.x86.Release.mch 87,197,345 -3,289
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 95,098,028 -98
realworld.run.windows.x86.checked.mch 11,049,305 +673

Details here


Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Overall (+0.01% to +0.14%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.14%
benchmarks.run_tiered.linux.arm.checked.mch +0.02%
coreclr_tests.run.linux.arm.checked.mch +0.03%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.06%
libraries_tests.run.linux.arm.Release.mch +0.09%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.06%
realworld.run.linux.arm.checked.mch +0.05%
FullOpts (+0.01% to +0.15%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.03%
benchmarks.run_pgo.linux.arm.checked.mch +0.15%
benchmarks.run_tiered.linux.arm.checked.mch +0.03%
coreclr_tests.run.linux.arm.checked.mch +0.04%
libraries.crossgen2.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.06%
libraries_tests.run.linux.arm.Release.mch +0.11%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.06%
realworld.run.linux.arm.checked.mch +0.05%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
realworld.run.linux.arm64.checked.mch +0.06%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
benchmarks.run_pgo.linux.arm64.checked.mch +0.19%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
benchmarks.run.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.05%
libraries_tests.run.linux.arm64.Release.mch +0.11%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.06%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
benchmarks.run_pgo.linux.arm64.checked.mch +0.21%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.06%
benchmarks.run.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.05%
libraries_tests.run.linux.arm64.Release.mch +0.14%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.01% to +0.19%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
coreclr_tests.run.linux.x64.checked.mch +0.03%
realworld.run.linux.x64.checked.mch +0.06%
libraries.pmi.linux.x64.checked.mch +0.06%
benchmarks.run_pgo.linux.x64.checked.mch +0.19%
benchmarks.run.linux.x64.checked.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
libraries_tests.run.linux.x64.Release.mch +0.11%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
FullOpts (+0.01% to +0.21%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
coreclr_tests.run.linux.x64.checked.mch +0.05%
realworld.run.linux.x64.checked.mch +0.06%
libraries.pmi.linux.x64.checked.mch +0.06%
benchmarks.run_pgo.linux.x64.checked.mch +0.21%
benchmarks.run.linux.x64.checked.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.06%
libraries_tests.run.linux.x64.Release.mch +0.14%
benchmarks.run_tiered.linux.x64.checked.mch +0.06%

Details here


@AndyAyersMS
Copy link
Member Author

TP impact on benchmarks_pgo is oddly high (0.15%ish) compared to everything else. Will have to dig in.

@AndyAyersMS
Copy link
Member Author

Looking at TP impact, I'm puzzled.

runtime1 is my changes, merge-base at a102e88, runtime2 is at the merge-base.

Main TP script and lab show:

[19:11:52] Running throughput diff of d:\spmi\mch\b8a05f18-503e-47e4-9193-931c50b151d1.windows.x64\benchmarks.run_pgo.windows.x64.checked.mch
[19:13:08] Total instructions executed by base: 120166191724
[19:13:08] Total instructions executed by diff: 120391609407
[19:13:08] Total instructions executed delta: 225417683 (0.19% of base)

but running locally in detail mode, via

d:\spmi\pintools\1.0\windows\pin.exe -t c:\tools\single_inscount.dll -m c:\repos\runtime1\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\clrjit.dll -trace -- c:\repos\runtime1\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\superpmi.exe c:\repos\runtime1\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\clrjit.dll d:\spmi\mch\b8a05f18-503e-47e4-9193-931c50b151d1.windows.x64\benchmarks.run_pgo.windows.x64.checked.mch 2> tp_diff.txt

d:\spmi\pintools\1.0\windows\pin.exe -t c:\tools\single_inscount.dll -m c:\repos\runtime2\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\clrjit.dll -trace -- c:\repos\runtime2\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\superpmi.exe c:\repos\runtime2\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\clrjit.dll d:\spmi\mch\b8a05f18-503e-47e4-9193-931c50b151d1.windows.x64\benchmarks.run_pgo.windows.x64.checked.mch 2> tp_base.txt

and then

dotnet run --project c:\repos\jitutils\src\jit-tp-analyze\jit-tp-analyze.csproj -b tp_base.txt -d tp_diff.txt > tp_compare.txt

gives a different picture:

Base: 120621811972, Diff: 120661330905, +0.0328%

With extra cycles where you'd expect

?GetRelatedRelop@ValueNumStore@@QEAAIIW4VN_RELATION_KIND@1@@Z                       : 25271176 : +2.78%  : 6.11%  : +0.0210%
?VNForFunc@ValueNumStore@@QEAAIW4var_types@@W4VNFunc@@II@Z                          : 22472587 : +1.77%  : 5.43%  : +0.0186%
?optRelopImpliesRelop@Compiler@@QEAAXPEAURelopImplicationInfo@@@Z                   : 16986701 : +2.91%  : 4.10%  : +0.0141%
?optGlobalAssertionIsEqualOrNotEqualZero@Compiler@@QEAAGAEBQEA_KPEAUGenTree@@@Z     : 16634693 : +14.00% : 4.02%  : +0.0138%

@dotnet/jit-contrib anyone ever seen things like this? Am tempted to write this off and just merge.

@jakobbotsch
Copy link
Member

The asm diff shows 79 misses in benchmarks.run_pgo in the diff. The way you are running the detailed TP measurement on the base and diff means that the diff is naturally going to execute fewer instructions since those 79 contexts won't be fully accounted for. I think @SingleAccretion has some scripts to create a proper .mcl with the non-missing contexts. You can also try the -details arg to the superpmi.exe invocation under pin. It will produce a .csv that can tell what the most diverging contexts are, so running the detailed pin tool on some of those only might be insightful.

@SingleAccretion
Copy link
Contributor

I think @SingleAccretion has some scripts to create a proper .mcl with the non-missing contexts.

For reference, this is https://github.com/SingleAccretion/Dotnet-Runtime.Dev#pinps1---diff-the-tp-impact-measured-as-the-count-of-retired-instructions. It's not a standalone script however.

@AndyAyersMS
Copy link
Member Author

The asm diff shows 79 misses in benchmarks.run_pgo in the diff. The way you are running the detailed TP measurement on the base and diff means that the diff is naturally going to execute fewer instructions since those 79 contexts won't be fully accounted for.

Thanks, that makes sense. Let me try stripping those.

@AndyAyersMS
Copy link
Member Author

Looks like that was indeed the issue; would not have expected 79/104,000 or so would matter that much.

Base: 120164431596, Diff: 120390010019, +0.1877%

?GetRelatedRelop@ValueNumStore@@QEAAIIW4VN_RELATION_KIND@1@@Z                     : 25267332 : +2.79%  : 9.40%  : +0.0210%
?VNForFunc@ValueNumStore@@QEAAIW4var_types@@W4VNFunc@@II@Z                        : 22469239 : +1.78%  : 8.36%  : +0.0187%
?optRelopImpliesRelop@Compiler@@QEAAXPEAURelopImplicationInfo@@@Z                 : 16983564 : +2.92%  : 6.32%  : +0.0141%
?optGlobalAssertionIsEqualOrNotEqualZero@Compiler@@QEAAGAEBQEA_KPEAUGenTree@@@Z   : 16885426 : +14.29% : 6.28%  : +0.0141%
?PerBlockAnalysis@LiveVarAnalysis@@AEAA_NPEAUBasicBlock@@_N1@Z                    : 11381389 : +0.58%  : 4.24%  : +0.0095%
`Compiler::optReachable'::`12'::<lambda_1>::operator()                            : 10323087 : +5.69%  : 3.84%  : +0.0086%
?optAddAssertion@Compiler@@QEAAGPEAUAssertionDsc@1@@Z                             : 10315855 : +1.70%  : 3.84%  : +0.0086%
BasicBlock::VisitAllSuccs<`Compiler::optReachable'::`12'::<lambda_1> >            : 9676270  : +5.80%  : 3.60%  : +0.0081%

Will look into the most afflicted contexts, could be there are some outliers.

…e it can

remove all preds of a BBJ_COND, and there's no point in retrying RBO
from such blocks.
@AndyAyersMS
Copy link
Member Author

Since jump threading now happens more often, we see more cases where a BBJ_COND loses all its predecessors. The main driver loop was retrying RBO on any BBJ_COND where we changed flow, but if we've removed all preds, this is pointless.

There is a bit more TP to be had by actually deleting (or perhaps just nuking the IR) in these blocks. I recall deleting blocks in RBO lead to problems but it might be worth revisiting. I see Assertion Prop at least spending some cycles looking at trees in dead blocks and possibly polluting the assertion table with irrelevant stuff. But I will probably save that for a follow-up.

@AndyAyersMS
Copy link
Member Author

OSX build hosts unable to access runtime repo.

@AndyAyersMS
Copy link
Member Author

Looked a bit into some of the bigger size regressions since I generally wouldn't expect to see them with more RBO. It appears it is a late flow opt deciding to duplicate more branches (again likely from fewer joints). We might need to revisit this heuristic too.

@ryujit-bot
Copy link

Diff results for #97722

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,505,885 contexts (1,007,092 MinOpts, 1,498,793 FullOpts).

MISSED contexts: base: 258 (0.01%), diff: 1,433 (0.06%)

Overall (-71,880 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,545,800 -568
benchmarks.run_pgo.linux.arm64.checked.mch 79,736,980 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 24,598,336 -460
coreclr_tests.run.linux.arm64.checked.mch 508,531,708 -4,516
libraries.crossgen2.linux.arm64.checked.mch 55,844,436 -1,368
libraries.pmi.linux.arm64.checked.mch 76,277,608 -3,200
libraries_tests.run.linux.arm64.Release.mch 394,079,948 -55,508
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 164,984,068 -3,752
realworld.run.linux.arm64.checked.mch 15,900,516 -508
smoke_tests.nativeaot.linux.arm64.checked.mch 2,830,580 -916
FullOpts (-71,880 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,240,872 -568
benchmarks.run_pgo.linux.arm64.checked.mch 53,802,196 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 4,859,900 -460
coreclr_tests.run.linux.arm64.checked.mch 160,383,556 -4,516
libraries.crossgen2.linux.arm64.checked.mch 55,842,800 -1,368
libraries.pmi.linux.arm64.checked.mch 76,157,624 -3,200
libraries_tests.run.linux.arm64.Release.mch 178,947,996 -55,508
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,486,604 -3,752
realworld.run.linux.arm64.checked.mch 15,319,592 -508
smoke_tests.nativeaot.linux.arm64.checked.mch 2,829,592 -916

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,516,325 contexts (991,070 MinOpts, 1,525,255 FullOpts).

MISSED contexts: base: 389 (0.02%), diff: 1,584 (0.06%)

Overall (-36,066 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,336,500 -447
benchmarks.run_pgo.linux.x64.checked.mch 71,262,509 -311
benchmarks.run_tiered.linux.x64.checked.mch 21,436,595 -146
coreclr_tests.run.linux.x64.checked.mch 403,520,699 -6,273
libraries.crossgen2.linux.x64.checked.mch 38,727,480 -908
libraries.pmi.linux.x64.checked.mch 60,419,116 -1,336
libraries_tests.run.linux.x64.Release.mch 335,697,392 -22,272
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,551,918 -1,444
realworld.run.linux.x64.checked.mch 13,174,283 +75
smoke_tests.nativeaot.linux.x64.checked.mch 4,067,946 -3,004
FullOpts (-36,066 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,037,197 -447
benchmarks.run_pgo.linux.x64.checked.mch 47,462,520 -311
benchmarks.run_tiered.linux.x64.checked.mch 3,695,815 -146
coreclr_tests.run.linux.x64.checked.mch 123,766,239 -6,273
libraries.crossgen2.linux.x64.checked.mch 38,726,282 -908
libraries.pmi.linux.x64.checked.mch 60,306,259 -1,336
libraries_tests.run.linux.x64.Release.mch 151,937,783 -22,272
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,934,150 -1,444
realworld.run.linux.x64.checked.mch 12,788,399 +75
smoke_tests.nativeaot.linux.x64.checked.mch 4,066,997 -3,004

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,270,098 contexts (932,669 MinOpts, 1,337,429 FullOpts).

MISSED contexts: base: 26 (0.00%), diff: 772 (0.03%)

Overall (-66,720 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,174,260 -560
benchmarks.run_pgo.osx.arm64.checked.mch 34,345,780 +332
benchmarks.run_tiered.osx.arm64.checked.mch 15,513,088 -452
coreclr_tests.run.osx.arm64.checked.mch 486,275,680 -2,512
libraries.crossgen2.osx.arm64.checked.mch 55,725,900 -1,328
libraries.pmi.osx.arm64.checked.mch 80,199,220 -4,312
libraries_tests.run.osx.arm64.Release.mch 323,439,028 -53,720
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 162,553,704 -3,656
realworld.run.osx.arm64.checked.mch 15,059,336 -512
FullOpts (-66,720 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,173,724 -560
benchmarks.run_pgo.osx.arm64.checked.mch 18,044,480 +332
benchmarks.run_tiered.osx.arm64.checked.mch 4,008,604 -452
coreclr_tests.run.osx.arm64.checked.mch 153,662,756 -2,512
libraries.crossgen2.osx.arm64.checked.mch 55,724,272 -1,328
libraries.pmi.osx.arm64.checked.mch 80,078,092 -4,312
libraries_tests.run.osx.arm64.Release.mch 119,723,180 -53,720
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 149,399,976 -3,656
realworld.run.osx.arm64.checked.mch 14,495,380 -512

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,339,808 contexts (938,449 MinOpts, 1,401,359 FullOpts).

MISSED contexts: base: 365 (0.02%), diff: 1,309 (0.06%)

Overall (-72,740 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,958,000 -512
benchmarks.run_pgo.windows.arm64.checked.mch 45,448,632 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 15,586,872 -452
coreclr_tests.run.windows.arm64.checked.mch 495,088,072 -3,952
libraries.crossgen2.windows.arm64.checked.mch 59,069,640 -1,332
libraries.pmi.windows.arm64.checked.mch 79,830,592 -3,336
libraries_tests.run.windows.arm64.Release.mch 329,503,424 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,563,196 -3,952
realworld.run.windows.arm64.checked.mch 15,903,032 -508
smoke_tests.nativeaot.windows.arm64.checked.mch 3,800,188 -1,640
FullOpts (-72,740 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,464 -512
benchmarks.run_pgo.windows.arm64.checked.mch 29,437,236 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 4,409,684 -452
coreclr_tests.run.windows.arm64.checked.mch 156,398,968 -3,952
libraries.crossgen2.windows.arm64.checked.mch 59,068,004 -1,332
libraries.pmi.windows.arm64.checked.mch 79,710,608 -3,336
libraries_tests.run.windows.arm64.Release.mch 126,069,828 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,409,448 -3,952
realworld.run.windows.arm64.checked.mch 15,339,052 -508
smoke_tests.nativeaot.windows.arm64.checked.mch 3,799,176 -1,640

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,510,842 contexts (997,391 MinOpts, 1,513,451 FullOpts).

MISSED contexts: base: 478 (0.02%), diff: 1,370 (0.05%)

Overall (-49,371 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,016,797 -421
benchmarks.run.windows.x64.checked.mch 8,742,242 -438
benchmarks.run_pgo.windows.x64.checked.mch 36,135,913 -1,493
benchmarks.run_tiered.windows.x64.checked.mch 12,416,932 -215
coreclr_tests.run.windows.x64.checked.mch 393,038,558 -2,612
libraries.crossgen2.windows.x64.checked.mch 39,486,541 -745
libraries.pmi.windows.x64.checked.mch 61,662,440 -2,114
libraries_tests.run.windows.x64.Release.mch 280,889,237 -36,156
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 137,060,508 -834
realworld.run.windows.x64.checked.mch 14,130,592 -68
smoke_tests.nativeaot.windows.x64.checked.mch 4,884,417 -4,275
FullOpts (-49,371 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,525,748 -421
benchmarks.run.windows.x64.checked.mch 8,741,879 -438
benchmarks.run_pgo.windows.x64.checked.mch 21,965,257 -1,493
benchmarks.run_tiered.windows.x64.checked.mch 3,317,693 -215
coreclr_tests.run.windows.x64.checked.mch 120,249,978 -2,612
libraries.crossgen2.windows.x64.checked.mch 39,485,354 -745
libraries.pmi.windows.x64.checked.mch 61,548,919 -2,114
libraries_tests.run.windows.x64.Release.mch 105,031,003 -36,156
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,441,402 -834
realworld.run.windows.x64.checked.mch 13,743,983 -68
smoke_tests.nativeaot.windows.x64.checked.mch 4,883,470 -4,275

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.01% to +0.10%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
benchmarks.run_pgo.linux.arm64.checked.mch +0.10%
benchmarks.run_tiered.linux.arm64.checked.mch +0.01%
coreclr_tests.run.linux.arm64.checked.mch +0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.03%
libraries_tests.run.linux.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.03%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%
MinOpts (-0.01% to +0.00%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch -0.01%
FullOpts (+0.01% to +0.12%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
benchmarks.run_pgo.linux.arm64.checked.mch +0.12%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
coreclr_tests.run.linux.arm64.checked.mch +0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.03%
libraries_tests.run.linux.arm64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.03%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.01% to +0.10%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.02%
benchmarks.run_pgo.linux.x64.checked.mch +0.10%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
FullOpts (+0.01% to +0.12%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.02%
benchmarks.run_pgo.linux.x64.checked.mch +0.12%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.01% to +0.04%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.03%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.02%
coreclr_tests.run.osx.arm64.checked.mch +0.01%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.03%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.03%
realworld.run.osx.arm64.checked.mch +0.03%
MinOpts (-0.00% to +0.01%)
Collection PDIFF
libraries.pmi.osx.arm64.checked.mch +0.01%
FullOpts (+0.01% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.03%
benchmarks.run_pgo.osx.arm64.checked.mch +0.05%
benchmarks.run_tiered.osx.arm64.checked.mch +0.03%
coreclr_tests.run.osx.arm64.checked.mch +0.01%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.03%
libraries_tests.run.osx.arm64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.03%
realworld.run.osx.arm64.checked.mch +0.03%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.01% to +0.10%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.03%
benchmarks.run_pgo.windows.arm64.checked.mch +0.10%
benchmarks.run_tiered.windows.arm64.checked.mch +0.02%
coreclr_tests.run.windows.arm64.checked.mch +0.01%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.03%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.03%
realworld.run.windows.arm64.checked.mch +0.03%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.02%
MinOpts (-0.00% to +0.01%)
Collection PDIFF
libraries.pmi.windows.arm64.checked.mch +0.01%
FullOpts (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.03%
benchmarks.run_pgo.windows.arm64.checked.mch +0.11%
benchmarks.run_tiered.windows.arm64.checked.mch +0.03%
coreclr_tests.run.windows.arm64.checked.mch +0.01%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.03%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.03%
realworld.run.windows.arm64.checked.mch +0.03%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.02%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.01% to +0.08%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.05%
benchmarks.run.windows.x64.checked.mch +0.03%
benchmarks.run_pgo.windows.x64.checked.mch +0.08%
benchmarks.run_tiered.windows.x64.checked.mch +0.02%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.03%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.03%
realworld.run.windows.x64.checked.mch +0.03%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%
FullOpts (+0.01% to +0.10%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.05%
benchmarks.run.windows.x64.checked.mch +0.03%
benchmarks.run_pgo.windows.x64.checked.mch +0.10%
benchmarks.run_tiered.windows.x64.checked.mch +0.03%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.03%
libraries_tests.run.windows.x64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.03%
realworld.run.windows.x64.checked.mch +0.03%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (+0.00% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.02%
benchmarks.run_pgo.linux.arm.checked.mch +0.09%
benchmarks.run_tiered.linux.arm.checked.mch +0.01%
coreclr_tests.run.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.03%
libraries_tests.run.linux.arm.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.03%
FullOpts (+0.00% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.02%
benchmarks.run_pgo.linux.arm.checked.mch +0.09%
benchmarks.run_tiered.linux.arm.checked.mch +0.02%
coreclr_tests.run.linux.arm.checked.mch +0.02%
libraries.pmi.linux.arm.checked.mch +0.03%
libraries_tests.run.linux.arm.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.03%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.01% to +0.08%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.04%
benchmarks.run_pgo.windows.x86.checked.mch +0.08%
benchmarks.run_tiered.windows.x86.checked.mch +0.03%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.03%
libraries_tests.run.windows.x86.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.03%
realworld.run.windows.x86.checked.mch +0.04%
FullOpts (+0.01% to +0.09%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.04%
benchmarks.run_pgo.windows.x86.checked.mch +0.09%
benchmarks.run_tiered.windows.x86.checked.mch +0.03%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.03%
libraries_tests.run.windows.x86.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.03%
realworld.run.windows.x86.checked.mch +0.04%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%
benchmarks.run_tiered.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.03%
benchmarks.run_pgo.linux.arm64.checked.mch +0.11%
coreclr_tests.run.linux.arm64.checked.mch +0.01%
libraries_tests.run.linux.arm64.Release.mch +0.05%
realworld.run.linux.arm64.checked.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
FullOpts (+0.01% to +0.13%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
libraries.pmi.linux.arm64.checked.mch +0.03%
benchmarks.run_pgo.linux.arm64.checked.mch +0.13%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
libraries_tests.run.linux.arm64.Release.mch +0.07%
realworld.run.linux.arm64.checked.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests.run.linux.x64.Release.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.11%
realworld.run.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.02%
FullOpts (+0.01% to +0.12%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.02%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests.run.linux.x64.Release.mch +0.07%
benchmarks.run_pgo.linux.x64.checked.mch +0.12%
realworld.run.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%

Details here


@ryujit-bot
Copy link

Diff results for #97722

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,505,885 contexts (1,007,092 MinOpts, 1,498,793 FullOpts).

MISSED contexts: base: 258 (0.01%), diff: 1,433 (0.06%)

Overall (-71,880 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,545,800 -568
benchmarks.run_pgo.linux.arm64.checked.mch 79,736,980 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 24,598,336 -460
coreclr_tests.run.linux.arm64.checked.mch 508,531,708 -4,516
libraries.crossgen2.linux.arm64.checked.mch 55,844,436 -1,368
libraries.pmi.linux.arm64.checked.mch 76,277,608 -3,200
libraries_tests.run.linux.arm64.Release.mch 394,079,948 -55,508
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 164,984,068 -3,752
realworld.run.linux.arm64.checked.mch 15,900,516 -508
smoke_tests.nativeaot.linux.arm64.checked.mch 2,830,580 -916
FullOpts (-71,880 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,240,872 -568
benchmarks.run_pgo.linux.arm64.checked.mch 53,802,196 -1,084
benchmarks.run_tiered.linux.arm64.checked.mch 4,859,900 -460
coreclr_tests.run.linux.arm64.checked.mch 160,383,556 -4,516
libraries.crossgen2.linux.arm64.checked.mch 55,842,800 -1,368
libraries.pmi.linux.arm64.checked.mch 76,157,624 -3,200
libraries_tests.run.linux.arm64.Release.mch 178,947,996 -55,508
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch 151,486,604 -3,752
realworld.run.linux.arm64.checked.mch 15,319,592 -508
smoke_tests.nativeaot.linux.arm64.checked.mch 2,829,592 -916

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,516,325 contexts (991,070 MinOpts, 1,525,255 FullOpts).

MISSED contexts: base: 389 (0.02%), diff: 1,584 (0.06%)

Overall (-36,066 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,336,500 -447
benchmarks.run_pgo.linux.x64.checked.mch 71,262,509 -311
benchmarks.run_tiered.linux.x64.checked.mch 21,436,595 -146
coreclr_tests.run.linux.x64.checked.mch 403,520,699 -6,273
libraries.crossgen2.linux.x64.checked.mch 38,727,480 -908
libraries.pmi.linux.x64.checked.mch 60,419,116 -1,336
libraries_tests.run.linux.x64.Release.mch 335,697,392 -22,272
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 132,551,918 -1,444
realworld.run.linux.x64.checked.mch 13,174,283 +75
smoke_tests.nativeaot.linux.x64.checked.mch 4,067,946 -3,004
FullOpts (-36,066 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,037,197 -447
benchmarks.run_pgo.linux.x64.checked.mch 47,462,520 -311
benchmarks.run_tiered.linux.x64.checked.mch 3,695,815 -146
coreclr_tests.run.linux.x64.checked.mch 123,766,239 -6,273
libraries.crossgen2.linux.x64.checked.mch 38,726,282 -908
libraries.pmi.linux.x64.checked.mch 60,306,259 -1,336
libraries_tests.run.linux.x64.Release.mch 151,937,783 -22,272
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch 121,934,150 -1,444
realworld.run.linux.x64.checked.mch 12,788,399 +75
smoke_tests.nativeaot.linux.x64.checked.mch 4,066,997 -3,004

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,270,098 contexts (932,669 MinOpts, 1,337,429 FullOpts).

MISSED contexts: base: 26 (0.00%), diff: 772 (0.03%)

Overall (-66,720 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,174,260 -560
benchmarks.run_pgo.osx.arm64.checked.mch 34,345,780 +332
benchmarks.run_tiered.osx.arm64.checked.mch 15,513,088 -452
coreclr_tests.run.osx.arm64.checked.mch 486,275,680 -2,512
libraries.crossgen2.osx.arm64.checked.mch 55,725,900 -1,328
libraries.pmi.osx.arm64.checked.mch 80,199,220 -4,312
libraries_tests.run.osx.arm64.Release.mch 323,439,028 -53,720
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 162,553,704 -3,656
realworld.run.osx.arm64.checked.mch 15,059,336 -512
FullOpts (-66,720 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,173,724 -560
benchmarks.run_pgo.osx.arm64.checked.mch 18,044,480 +332
benchmarks.run_tiered.osx.arm64.checked.mch 4,008,604 -452
coreclr_tests.run.osx.arm64.checked.mch 153,662,756 -2,512
libraries.crossgen2.osx.arm64.checked.mch 55,724,272 -1,328
libraries.pmi.osx.arm64.checked.mch 80,078,092 -4,312
libraries_tests.run.osx.arm64.Release.mch 119,723,180 -53,720
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch 149,399,976 -3,656
realworld.run.osx.arm64.checked.mch 14,495,380 -512

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,339,808 contexts (938,449 MinOpts, 1,401,359 FullOpts).

MISSED contexts: base: 365 (0.02%), diff: 1,309 (0.06%)

Overall (-72,740 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,958,000 -512
benchmarks.run_pgo.windows.arm64.checked.mch 45,448,632 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 15,586,872 -452
coreclr_tests.run.windows.arm64.checked.mch 495,088,072 -3,952
libraries.crossgen2.windows.arm64.checked.mch 59,069,640 -1,332
libraries.pmi.windows.arm64.checked.mch 79,830,592 -3,336
libraries_tests.run.windows.arm64.Release.mch 329,503,424 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,563,196 -3,952
realworld.run.windows.arm64.checked.mch 15,903,032 -508
smoke_tests.nativeaot.windows.arm64.checked.mch 3,800,188 -1,640
FullOpts (-72,740 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,957,464 -512
benchmarks.run_pgo.windows.arm64.checked.mch 29,437,236 -5,720
benchmarks.run_tiered.windows.arm64.checked.mch 4,409,684 -452
coreclr_tests.run.windows.arm64.checked.mch 156,398,968 -3,952
libraries.crossgen2.windows.arm64.checked.mch 59,068,004 -1,332
libraries.pmi.windows.arm64.checked.mch 79,710,608 -3,336
libraries_tests.run.windows.arm64.Release.mch 126,069,828 -51,336
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,409,448 -3,952
realworld.run.windows.arm64.checked.mch 15,339,052 -508
smoke_tests.nativeaot.windows.arm64.checked.mch 3,799,176 -1,640

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 2,510,842 contexts (997,391 MinOpts, 1,513,451 FullOpts).

MISSED contexts: base: 478 (0.02%), diff: 1,370 (0.05%)

Overall (-49,371 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 47,016,797 -421
benchmarks.run.windows.x64.checked.mch 8,742,242 -438
benchmarks.run_pgo.windows.x64.checked.mch 36,135,913 -1,493
benchmarks.run_tiered.windows.x64.checked.mch 12,416,932 -215
coreclr_tests.run.windows.x64.checked.mch 393,038,558 -2,612
libraries.crossgen2.windows.x64.checked.mch 39,486,541 -745
libraries.pmi.windows.x64.checked.mch 61,662,440 -2,114
libraries_tests.run.windows.x64.Release.mch 280,889,237 -36,156
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 137,060,508 -834
realworld.run.windows.x64.checked.mch 14,130,592 -68
smoke_tests.nativeaot.windows.x64.checked.mch 4,884,417 -4,275
FullOpts (-49,371 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,525,748 -421
benchmarks.run.windows.x64.checked.mch 8,741,879 -438
benchmarks.run_pgo.windows.x64.checked.mch 21,965,257 -1,493
benchmarks.run_tiered.windows.x64.checked.mch 3,317,693 -215
coreclr_tests.run.windows.x64.checked.mch 120,249,978 -2,612
libraries.crossgen2.windows.x64.checked.mch 39,485,354 -745
libraries.pmi.windows.x64.checked.mch 61,548,919 -2,114
libraries_tests.run.windows.x64.Release.mch 105,031,003 -36,156
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,441,402 -834
realworld.run.windows.x64.checked.mch 13,743,983 -68
smoke_tests.nativeaot.windows.x64.checked.mch 4,883,470 -4,275

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 2,239,029 contexts (829,328 MinOpts, 1,409,701 FullOpts).

MISSED contexts: base: 71,275 (3.08%), diff: 71,635 (3.10%)

Overall (-24,840 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 15,290,466 -302
benchmarks.run_pgo.linux.arm.checked.mch 63,929,396 -742
benchmarks.run_tiered.linux.arm.checked.mch 21,546,470 -306
coreclr_tests.run.linux.arm.checked.mch 321,761,918 -3,514
libraries.crossgen2.linux.arm.checked.mch 34,522,532 -956
libraries.pmi.linux.arm.checked.mch 49,853,500 -2,170
libraries_tests.run.linux.arm.Release.mch 243,599,980 -13,566
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 94,521,368 -3,220
realworld.run.linux.arm.checked.mch 13,606,852 -64
FullOpts (-24,840 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm.checked.mch 14,901,264 -302
benchmarks.run_pgo.linux.arm.checked.mch 52,729,430 -742
benchmarks.run_tiered.linux.arm.checked.mch 12,893,470 -306
coreclr_tests.run.linux.arm.checked.mch 109,284,330 -3,514
libraries.crossgen2.linux.arm.checked.mch 34,521,302 -956
libraries.pmi.linux.arm.checked.mch 49,747,276 -2,170
libraries_tests.run.linux.arm.Release.mch 122,630,848 -13,566
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch 84,450,632 -3,220
realworld.run.linux.arm.checked.mch 13,171,552 -64

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 2,292,042 contexts (839,658 MinOpts, 1,452,384 FullOpts).

MISSED contexts: base: 47 (0.00%), diff: 1,452 (0.06%)

Overall (-9,165 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,121,062 -218
benchmarks.run_pgo.windows.x86.checked.mch 44,941,419 -499
benchmarks.run_tiered.windows.x86.checked.mch 9,468,659 -340
coreclr_tests.run.windows.x86.checked.mch 309,192,716 -1,965
libraries.crossgen2.windows.x86.checked.mch 31,712,962 -696
libraries.pmi.windows.x86.checked.mch 49,233,014 -875
libraries_tests.run.windows.x86.Release.mch 185,488,402 -5,311
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 103,770,390 +53
realworld.run.windows.x86.checked.mch 11,345,546 +686
FullOpts (-9,165 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x86.checked.mch 7,120,781 -218
benchmarks.run_pgo.windows.x86.checked.mch 38,352,788 -499
benchmarks.run_tiered.windows.x86.checked.mch 5,198,838 -340
coreclr_tests.run.windows.x86.checked.mch 107,404,818 -1,965
libraries.crossgen2.windows.x86.checked.mch 31,711,902 -696
libraries.pmi.windows.x86.checked.mch 49,137,781 -875
libraries_tests.run.windows.x86.Release.mch 87,214,770 -5,311
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch 95,090,326 +53
realworld.run.windows.x86.checked.mch 11,049,832 +686

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.01% to +0.10%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
benchmarks.run_pgo.linux.arm64.checked.mch +0.10%
benchmarks.run_tiered.linux.arm64.checked.mch +0.01%
coreclr_tests.run.linux.arm64.checked.mch +0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.03%
libraries_tests.run.linux.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.03%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%
MinOpts (-0.01% to +0.00%)
Collection PDIFF
libraries.pmi.linux.arm64.checked.mch -0.01%
FullOpts (+0.01% to +0.12%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
benchmarks.run_pgo.linux.arm64.checked.mch +0.12%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
coreclr_tests.run.linux.arm64.checked.mch +0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.03%
libraries_tests.run.linux.arm64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
realworld.run.linux.arm64.checked.mch +0.03%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.01% to +0.10%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.02%
benchmarks.run_pgo.linux.x64.checked.mch +0.10%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
FullOpts (+0.01% to +0.12%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.02%
benchmarks.run_pgo.linux.x64.checked.mch +0.12%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.01% to +0.04%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.03%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.02%
coreclr_tests.run.osx.arm64.checked.mch +0.01%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.03%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.03%
realworld.run.osx.arm64.checked.mch +0.03%
MinOpts (-0.00% to +0.01%)
Collection PDIFF
libraries.pmi.osx.arm64.checked.mch +0.01%
FullOpts (+0.01% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.03%
benchmarks.run_pgo.osx.arm64.checked.mch +0.05%
benchmarks.run_tiered.osx.arm64.checked.mch +0.03%
coreclr_tests.run.osx.arm64.checked.mch +0.01%
libraries.crossgen2.osx.arm64.checked.mch +0.01%
libraries.pmi.osx.arm64.checked.mch +0.03%
libraries_tests.run.osx.arm64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.03%
realworld.run.osx.arm64.checked.mch +0.03%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.01% to +0.10%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.03%
benchmarks.run_pgo.windows.arm64.checked.mch +0.10%
benchmarks.run_tiered.windows.arm64.checked.mch +0.02%
coreclr_tests.run.windows.arm64.checked.mch +0.01%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.03%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.03%
realworld.run.windows.arm64.checked.mch +0.03%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.02%
MinOpts (-0.00% to +0.01%)
Collection PDIFF
libraries.pmi.windows.arm64.checked.mch +0.01%
FullOpts (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.03%
benchmarks.run_pgo.windows.arm64.checked.mch +0.11%
benchmarks.run_tiered.windows.arm64.checked.mch +0.03%
coreclr_tests.run.windows.arm64.checked.mch +0.01%
libraries.crossgen2.windows.arm64.checked.mch +0.01%
libraries.pmi.windows.arm64.checked.mch +0.03%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.03%
realworld.run.windows.arm64.checked.mch +0.03%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.02%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.01% to +0.08%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.05%
benchmarks.run.windows.x64.checked.mch +0.03%
benchmarks.run_pgo.windows.x64.checked.mch +0.08%
benchmarks.run_tiered.windows.x64.checked.mch +0.02%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.03%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.03%
realworld.run.windows.x64.checked.mch +0.03%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%
FullOpts (+0.01% to +0.10%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.05%
benchmarks.run.windows.x64.checked.mch +0.03%
benchmarks.run_pgo.windows.x64.checked.mch +0.10%
benchmarks.run_tiered.windows.x64.checked.mch +0.03%
coreclr_tests.run.windows.x64.checked.mch +0.01%
libraries.crossgen2.windows.x64.checked.mch +0.01%
libraries.pmi.windows.x64.checked.mch +0.03%
libraries_tests.run.windows.x64.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.03%
realworld.run.windows.x64.checked.mch +0.03%
smoke_tests.nativeaot.windows.x64.checked.mch +0.01%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (+0.00% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.02%
benchmarks.run_pgo.linux.arm.checked.mch +0.09%
benchmarks.run_tiered.linux.arm.checked.mch +0.01%
coreclr_tests.run.linux.arm.checked.mch +0.01%
libraries.pmi.linux.arm.checked.mch +0.03%
libraries_tests.run.linux.arm.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.03%
FullOpts (+0.00% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch +0.02%
benchmarks.run_pgo.linux.arm.checked.mch +0.09%
benchmarks.run_tiered.linux.arm.checked.mch +0.02%
coreclr_tests.run.linux.arm.checked.mch +0.02%
libraries.pmi.linux.arm.checked.mch +0.03%
libraries_tests.run.linux.arm.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch +0.03%
realworld.run.linux.arm.checked.mch +0.03%

Throughput diffs for windows/x86 ran on windows/x86

Overall (+0.01% to +0.08%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.04%
benchmarks.run_pgo.windows.x86.checked.mch +0.08%
benchmarks.run_tiered.windows.x86.checked.mch +0.03%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.03%
libraries_tests.run.windows.x86.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.03%
realworld.run.windows.x86.checked.mch +0.04%
FullOpts (+0.01% to +0.09%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch +0.04%
benchmarks.run_pgo.windows.x86.checked.mch +0.09%
benchmarks.run_tiered.windows.x86.checked.mch +0.03%
coreclr_tests.run.windows.x86.checked.mch +0.01%
libraries.crossgen2.windows.x86.checked.mch +0.01%
libraries.pmi.windows.x86.checked.mch +0.03%
libraries_tests.run.windows.x86.Release.mch +0.06%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch +0.03%
realworld.run.windows.x86.checked.mch +0.04%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%
benchmarks.run_tiered.linux.arm64.checked.mch +0.01%
libraries.pmi.linux.arm64.checked.mch +0.03%
benchmarks.run_pgo.linux.arm64.checked.mch +0.11%
coreclr_tests.run.linux.arm64.checked.mch +0.01%
libraries_tests.run.linux.arm64.Release.mch +0.05%
realworld.run.linux.arm64.checked.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%
FullOpts (+0.01% to +0.13%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.02%
benchmarks.run_tiered.linux.arm64.checked.mch +0.03%
libraries.pmi.linux.arm64.checked.mch +0.03%
benchmarks.run_pgo.linux.arm64.checked.mch +0.13%
coreclr_tests.run.linux.arm64.checked.mch +0.02%
libraries_tests.run.linux.arm64.Release.mch +0.07%
realworld.run.linux.arm64.checked.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.03%

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.01% to +0.11%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests.run.linux.x64.Release.mch +0.05%
benchmarks.run_pgo.linux.x64.checked.mch +0.11%
realworld.run.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.02%
FullOpts (+0.01% to +0.12%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.02%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.01%
libraries_tests.run.linux.x64.Release.mch +0.07%
benchmarks.run_pgo.linux.x64.checked.mch +0.12%
realworld.run.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%

Details here


@AndyAyersMS
Copy link
Member Author

Since jump threading now happens more often, we see more cases where a BBJ_COND loses all its predecessors. The main driver loop was retrying RBO on any BBJ_COND where we changed flow, but if we've removed all preds, this is pointless.

That cut worst-case TP roughly in half. Going to call this good.

@AndyAyersMS AndyAyersMS merged commit 6268bb9 into dotnet:main Feb 2, 2024
125 of 128 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Mar 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants